// pages/Index/couponActivity/addCoupon/addDetail/index.js
const addCoupon=require("../../../../controllers/ControllerX").controller.addCoupon;
const couponList=require("../../../../controllers/ControllerX").controller.couponList;
const labels=require("../../../../controllers/ControllerX").controller.labels;
const labelGoodsPage=require("../../../../controllers/ControllerX").controller.labelGoodsPage;

const app=getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    couState:false,
    goodsState:false,
    state1:false,
    state2:false,
    state3:false,
    state4:false,
    state5:false,
    state6:false,
    state7:false,
    state8:false,
    value:{
      shopId:null,
      type:null,
      timeState:null,
      name:'',
      startTime:'',
      endTime:"",
      price:null,
      desc:"",
      effectiveStartTime:'',
      effectiveEndTime:'',
      quota:null,
      num:null,
      shareNum:null,
      ids:'',
      integral:null
    },
    couponList:[

    ],
    selectCoupons:[],
    couponsArr:[],
    showCoupons:[],
    goodsList:[],
    allGoodsList:[],
    selectgoods:[],
    selectArr:[],
    labelList:[
      // {name:"标签1",id:1},{name:"标签2",id:2}
    ],
    selectIndex:0,
    showGoods:[],
    couponType:"",
    isloading:false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let state=options.state;
    // let state='4';
    this.setData({
      'value.type':parseInt(state),
      'value.shopId':wx.getStorageSync('shopId')
    })
    if(state=="0"){
      this.setData({
        state1:false,
        state2:true,
        state3:true,
        state4:false,
        state5:false,
        state6:false,
        state7:true,
        state8:false
      })
    }else if(state=="1"){
        this.setData({
          state1:true,
          state2:false,
          state3:true,
          state4:true,
          state5:false,
          state6:false,
          state7:true,
          state8:false
        })
    }else if(state=="2"){
        this.setData({
          state1:true,
          state2:false,
          state3:true,
          state4:false,
          state5:true,
          state6:false,
          state7:false,
          state8:true
        })
    }else if(state=="3"){
        this.setData({
          state1:true,
          state2:false,
          state3:true,
          state4:false,
          state5:true,
          state6:false,
          state7:true,
          state8:false
        })
    }else if(state=="4"){
        this.setData({
          state1:false,
          state2:false,
          state3:false,
          state4:false,
          state5:false,
          state6:true,
          state7:false,
          state8:false
        })
    }else{
        this.setData({
          state1:true,
          state2:false,
          state3:true,
          state4:false,
          state5:false,
          state6:false,
          state7:true,
          state8:false
        })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getCouponList();
    this.getLabels();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
   // onShareAppMessage: function () {

  // },

  //打开添加优惠券
  openCou(){
    this.setData({
      couState:true
    })
  },

  //打开添加商品
  openGoods(){
    this.setData({
      goodsState:true
    })
  },

  //关闭弹框
  closeTangkuan(){
    this.setData({
      couState:false,
      goodsState:false
    })
  },

  //新增优惠券
  getAddCoupon(){

    if(!this.data.value.name){
      wx.showToast({
        icon:"none",
        title: '请填写活动名称',
        duration:1500
      })
    }else if(!this.data.value.price){
      wx.showToast({
        icon:"none",
        title: '请填写优惠券面值',
        duration:1500
      })
    }else if(!this.data.value.startTime||!this.data.value.endTime){
      wx.showToast({
        icon:"none",
        title: '请选择活动时间',
        duration:1500
      })
    }else if(!this.data.value.desc){
      wx.showToast({
        icon:"none",
        title: '请填写描述内容',
        duration:1500
      })
    }else{
      if(this.data.value.timeState!=0){
        if(!this.data.value.effectiveStartTime||!this.data.value.effectiveEndTime){
          wx.showToast({
            icon:"none",
            title: '请选择固定时间',
            duration:1500
          })
        }else{
          if(this.data.isloading){
            return
          }
          this.setData({
            isloading:true
          })

          addCoupon(this.data.value).then(res=>{
            if(res.code==1){
              wx.showToast({
                title: '优惠券新增成功',
                duration:1000
              })
              var that=this
              setTimeout(function(){
                wx.navigateBack()
                that.setData({
                  isloading:false
                })
              },1000)
            }
            
          }).catch(()=>{
            this.setData({
              isloading:false
            })
          })
        }
      }else{
        if(this.data.isloading){
          return
        }
        this.setData({
          isloading:true
        })
        addCoupon(this.data.value).then(res=>{
          if(res.code==1){
            wx.showToast({
              title: '优惠券新增成功',
              duration:1000
            })
            var that=this
            setTimeout(function(){
              wx.navigateBack()
              that.setData({
                  isloading:false
                })
            },1000)
          }
        }).catch(()=>{
          this.setData({
            isloading:false
          })
        })
      }
    }
  },

  //获取添加到活动的优惠券列表
  getCouponList(){
    let shopId=wx.getStorageSync('shopId');
    couponList({shopId:shopId}).then(res=>{
      let canUseICou=[];
      let list=res.data;
      console.log(list);
      let nowTime=new Date().getTime();
      for(let i=0;i<list.length;i++){
        let endTime=new Date(list[i].endTime.replace(/-/g,"/")).getTime();
        if(nowTime<endTime&&list[i].type!=4){
          canUseICou.push(list[i])
        }else if(list[i].timeState==0&&list[i].type!=4){
          canUseICou.push(list[i])
        }
      }
      this.setData({
        couponList:canUseICou
      })
    })
  },

  //选择优惠券状态
  selectTimeState(e){
    let state=e.currentTarget.dataset.state;
    if(state==0){
      this.setData({
        'value.timeState':0
      })
    }else{
      this.setData({
        'value.timeState':1
      })
    }
  },
  //输入活动名称      name
  inputName(e){
    this.setData({
      'value.name':e.detail.value
    })
  },

  //输入兑换积分      integral
  inputIntegral(e){
    this.setData({
      'value.integral':(e.detail.value)
    })
  },

  //输入优惠券面值      price
  inputPrice(e){
    this.setData({
      'value.price':(e.detail.value)
    })
  },


  //输入优惠券数量      num
  inputNum(e){
    this.setData({
      'value.num':parseInt(e.detail.value)
    })
  },

  //输入分享人数      shareNum
  inputShareNum(e){
    this.setData({
      'value.shareNum':parseInt(e.detail.value)
    })
  },

  //输入优惠券描述      desc
  inputDesc(e){
    this.setData({
      'value.desc':e.detail.value
    })
  },
  
  //输入满减数        quota
  inputQuota(e){
    this.setData({
      'value.quota':e.detail.value
    })
  },

  /******************* */
  //输入活动开始时间    startTime
  selectStartTime(e){
    let startTime=e.detail.value+" "+"00:00:00"
    this.setData({
      'value.startTime':startTime
    })
  },

  //输入活动结束时间    endTime
  selectEndTime(e){
    let start=this.data.value.startTime;
    let end=e.detail.value+" "+'23:59:59';
    console.log(end)
    let startTime=new Date(start.replace(/-/g,"/")).getTime();
    let newTime=new Date().getTime();
    let endTime=new Date(end.replace(/-/g,"/")).getTime();
    if(endTime<startTime){
      wx.showToast({
        icon:"none",
        title: '结束时间不能在开始时间之前',
        duration:2000
      })
    }else if(newTime>endTime){
      wx.showToast({
        icon:"none",
        title: '请不要输入已过期时间',
        duration:2000
      })
    }else{
      this.setData({
        'value.endTime':end
      })
    }
  },

  //输入优惠券开始时间    effectiveStartTime
  selectEffectiveStartTime(e){
    let startTime=e.detail.value+" "+"00:00:00"
    this.setData({
      'value.effectiveStartTime':startTime
    })
  },

  //输入优惠券结束时间    effectiveEndTime
  selectEffectiveEndTime(e){
    let start=this.data.value.effectiveStartTime;
    let end=e.detail.value+" "+'23:59:59';
    let startTime=new Date(start.replace(/-/g,"/")).getTime();
    let newTime=new Date().getTime();
    let endTime=new Date(end.replace(/-/g,"/")).getTime();
    if(endTime<startTime){
      wx.showToast({
        icon:"none",
        title: '结束时间不能在开始时间之前',
        duration:2000
      })
    }else if(newTime>endTime){
      wx.showToast({
        icon:"none",
        title: '请不要输入已过期时间',
        duration:2000
      })
    }else{
      this.setData({
        'value.effectiveEndTime':end
      })
    }

  },

  //获取选中的优惠券
  checkboxChange(e){
    let value= e.detail.value;
    let selectCouponsArr=this.data.couponsArr;
    let selectCou=[];
    let ids=''
    let id=e.currentTarget.dataset.id;
    if(value!=false){
      selectCouponsArr.push(value[0]);
    }else{
      for(var i=0;i<selectCouponsArr.length;i++){
        if(id==selectCouponsArr[i]){
          selectCouponsArr.splice(i,1);
        }
      }
    }
    //判断选中的优惠券是否重复
    for(var i=0;i<selectCouponsArr.length;i++){
      for(var j=i+1;j<selectCouponsArr.length;j++){
        if(selectCouponsArr[i]==selectCouponsArr[j]){
          selectCouponsArr.splice(j,1);
          j--;
        }
      }
    }
    this.setData({
      couponsArr:selectCouponsArr
    })
    //将选中的优惠券放入selectCoupons中
    for(let i=0;i<this.data.couponsArr.length;i++){
      ids+=this.data.couponsArr[i]+",";
      this.data.couponList.forEach(item=>{
        if(item.id==this.data.couponsArr[i]){
          selectCou.push(item);
        };
      })
    }
    ids=ids.slice(0,ids.length-1);
    console.log(ids);
    this.setData({
      'value.ids':ids,
      showCoupons:selectCou
    })
  },
  //展现选中的优惠券
  showCou(){
    this.setData({
      selectCoupons:this.data.showCoupons
    })
    this.closeTangkuan()
  },


  //删除选中的优惠券
  deleteCou(e){
    let id=e.currentTarget.dataset.id;
    let arr=this.data.selectCoupons;
    let arr2=this.data.couponsArr;
    let ids=''
    for(let i=0;i<arr.length;i++){
      if(id==arr[i].id){
        arr.splice(i,1),
        arr2.splice(i,1)
      }
    }
    for(let j=0;j<arr.length;j++){
      ids=ids+arr[j].id+","
    }
    ids=ids.slice(0,ids.length-1)
    this.setData({
      selectCoupons:arr,
      'value.ids':ids,
      couponsArr:arr2
    })
  },

  //获得商城标签列表
  getLabels(){
    labels({type:1,shopId:wx.getStorageSync('shopId')}).then(res=>{
      this.setData({
        labelList:res.data
      })
      this.getLabelGoodsPage(res.data[0].id);
      //获取所有商品
      let allGoodsList=[];
      for(let i=0;i<res.data.length;i++){
        labelGoodsPage({labelId:res.data[i].id}).then(res=>{
          let list=res.data.list;
          for(let j=0;j<list.length;j++){
            allGoodsList.push(list[j])
          }
        })
      }
      this.setData({
        allGoodsList:allGoodsList
      })
    })
  },

  //商品标签跳转
  selectShopTag(e){
    let index=e.currentTarget.dataset.index;
    let id=e.currentTarget.dataset.id;
    this.setData({
      selectIndex:index
    })
    this.getLabelGoodsPage(id);

  },

  //根据标签获取商品
  getLabelGoodsPage(id){
    let labelId=id;
    labelGoodsPage({labelId:labelId}).then(res=>{
      this.setData({
        goodsList:res.data.list
      })
    })
  },
  //选中商品
  checkboxChange2(e){
    let value= e.detail.value;
    let selectArr=this.data.selectArr;
    let selectgoods=[];
    let ids=""
    let id=e.currentTarget.dataset.id;
    if(value!=false){
      selectArr.push(value[0]);
    }else{
      for(var i=0;i<selectArr.length;i++){
        if(id==selectArr[i]){
          selectArr.splice(i,1);
        }
      }
    }
    //循环判断是否重复选中
    for(var i=0;i<selectArr.length;i++){
      for(var j=i+1;j<selectArr.length;j++){
        if(selectArr[i]==selectArr[j]){
          selectArr.splice(j,1);
          j--;
        }
      }
    }
    this.setData({
      selectArr:selectArr
    })
    for(let i=0;i<this.data.selectArr.length;i++){
      ids+=selectArr[i]+",";
      this.data.allGoodsList.forEach(item=>{
        if(item.id==selectArr[i]){
          selectgoods.push(item);
        };
      })
    }
    ids=ids.slice(0,ids.length-1);
    console.log(ids);
    this.setData({
      'value.ids':ids,
      showGoods:selectgoods
    })
    console.log(this.data.selectgoods)
  },

  //删除选中的商品
  deleteGoods(e){
    let id=e.currentTarget.dataset.id;
    let arr=this.data.selectgoods;
    let sArr=this.data.selectArr;
    let ids=''
    for(let i=0;i<arr.length;i++){
      if(id==arr[i].id){
        arr.splice(i,1)
        sArr.splice(i,1)
      }
    }
    for(let j=0;j<arr.length;j++){
      ids=ids+arr[j].id+","
    }
    ids=ids.slice(0,ids.length-1)
    this.setData({
      selectgoods:arr,
      'value.ids':ids,
      selectArr:sArr
    })
    this.getPrice();
  },

  //选中并展现商品
  showGoods(){
    this.setData({
      selectgoods:this.data.showGoods
    })
    this.getPrice();
    this.closeTangkuan()
  },

  //获取免费体验券的优惠券面值
  getPrice(){
    if(this.data.value.type==3){
      let goodsList=this.data.showGoods;
      let price=0;
      for(let i=0;i<goodsList.length;i++){
        price=price+goodsList[i].price
      }
      this.setData({
        'value.price':price
      })
    }
  }

})